/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Logistica.Controlador;

import com.dp1.pucp.Logistica.DAO.*;

import com.dp1.pucp.Logistica.Vista.*;
import com.dp1.pucp.Modelo.Clases.Simulacion;
import com.dp1.pucp.Modelo.Clases.Productosimulacion;
import com.dp1.pucp.Util.Validaciones;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

/**
 *
 * @author ubuntu64
 */
public class ProcesarPedidosControlador {
    
    ProcesarPedidosDAO dao;
    public ProcesarPedidoGUI2 vista;
    
    public ProcesarPedidosControlador( ProcesarPedidosDAO dao, ProcesarPedidoGUI2 vista){
         this.dao = dao;
         this.vista = vista;
         
         vista.addCalcularListener(new calcularListener());
         
         vista.addSiguienteListener(new siguienteListener(this));
         
    }
    
    class calcularListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e){
            // Calcular cantidad de galletas
            int cantidadGalletas1=0;
            int cantidadGalletas2=0;
            int cantidadGalletas3=0;
            
            
            ArrayList<Simulacion> simulaciones = dao.getSimulacionesActivas(); // las ue tengan estado 1rnote
            
            if (simulaciones.size() == 0){
                Validaciones.mostrarMensajeAvisoVal("La simulación activa ya está siendo procesada. ");
                vista.inhabilitarCalcular();
                vista.inhabilitarSiguiente();
            }
            
            ArrayList<Productosimulacion> productosxsimulaciones= new ArrayList<>();
            ArrayList<Productosimulacion> auxiliar = new ArrayList<>();
            
            for (int i=0; i<simulaciones.size(); i++){
                auxiliar = dao.getProductosxSimulaciones(simulaciones.get(i).getIdsimulacion());
                
                for (int j=0; j<auxiliar.size(); j++){
                    productosxsimulaciones.add(auxiliar.get(j));
                }
            }
            
            for (int k =0; k<productosxsimulaciones.size(); k++){
                if (productosxsimulaciones.get(k).getTipoproducto().getIdtipoproducto() == 9){
                    cantidadGalletas1  = cantidadGalletas1+productosxsimulaciones.get(k).getCantProducida()+productosxsimulaciones.get(k).getCantMerma();}
                 if (productosxsimulaciones.get(k).getTipoproducto().getIdtipoproducto() == 10){
                    cantidadGalletas2  = cantidadGalletas2+productosxsimulaciones.get(k).getCantProducida()+productosxsimulaciones.get(k).getCantMerma();}
                 if (productosxsimulaciones.get(k).getTipoproducto().getIdtipoproducto() == 11){
                    cantidadGalletas3  = cantidadGalletas3+productosxsimulaciones.get(k).getCantProducida()+productosxsimulaciones.get(k).getCantMerma(); }   
             }
            
            String nombre1, nombre2, nombre3;
           
               nombre1 = dao.getTipoProducto(1).getNombre(); // codigo del script por defecto del producto 1
               nombre2 = dao.getTipoProducto(2).getNombre(); // codigo del s
               nombre3 = dao.getTipoProducto(3).getNombre();
           
           
            vista.setNombreProductos(nombre1, nombre2, nombre3);
            vista.setCantidadProductos(cantidadGalletas1, cantidadGalletas2, cantidadGalletas3);
            }
        
        }
    
    
    class cancelarListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e){
            
        }
    }
    
    class siguienteListener implements ActionListener {
        
        ProcesarPedidosControlador cont;
        
        public siguienteListener(ProcesarPedidosControlador c){
            this.cont = c;
        }
        @Override
        public void actionPerformed(ActionEvent e){
            ProcesarPedidoProdNextGUI vistaNext = new ProcesarPedidoProdNextGUI(vista.getPadre(), true);
            ProcesarPedidosNextControlador controlador = new ProcesarPedidosNextControlador( vistaNext, dao, cont );
            vistaNext.setVisible(true);
        }
    }
}
